package org.goodsmanager.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.goodsmanager.entity.Category;
import java.util.List;

/**
 * 分类Mapper接口
 *
 * @author Goods Manager System
 * @version 1.0.0
 */
@Mapper
public interface CategoryMapper {

    /**
     * 插入分类
     */
    int insert(Category category);

    /**
     * 根据ID删除分类
     */
    int deleteById(String id);

    /**
     * 更新分类
     */
    int update(Category category);

    /**
     * 根据ID查询分类
     */
    Category selectById(String id);

    /**
     * 查询所有分类
     */
    List<Category> selectAll();

    /**
     * 查询启用的分类
     */
    List<Category> selectActive();

    /**
     * 统计分类下的商品数量
     */
    int countProductsByCategory(@Param("categoryId") String categoryId);

    /**
     * 检查分类编码是否存在
     */
    int checkCodeExists(@Param("categoryCode") String categoryCode,
                        @Param("excludeId") String excludeId);

    /**
     * 检查分类名称是否存在
     */
    int checkNameExists(@Param("categoryName") String categoryName,
                        @Param("excludeId") String excludeId);
}